package recursion;

import java.io.File;

public class FileRecursionDemo {
    public static void main(String[] args) {
        //1、找到D盘所有一级目录
        File dir = new File("D:\\");
        search(dir, "QQ.exe");
    }

    /*
     * 搜索文件
     * */
    private static void search(File dir, String s) {
        //1、判断极端情况：空文件夹、文件不存在、只是个文件
        if (dir == null || !dir.exists() || dir.isFile()) {
            return;//不搜索了
        }
        //2、获取当前目录的所有一级文件或者文件夹
        File[] files = dir.listFiles();
        //3、遍历
        if (files != null ) {
            for (File file : files) {
                //4、判断当前一级文件对象是文件
                if (file.isFile()) {
                    //5、找文件
                    if (file.getName().contains(s)) {
                        System.out.println(file.getAbsoluteFile());
                    }
                } else {
                    //6、是文件夹，递归
                    search(file, s);
                }
            }
        }
    }
}
